/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package passwordchecker;

//import interfaces.VerificadorDeForca;
//import interfaces.VerificadorDeRegras;
import forca.ResultadoDaForca01;
import regras.VerificaSeExisteCaixaAlta;
import regras.VerificaSeExisteCaixaBaixa;
import regras.VerificaSeExisteDigito;
import regras.VerificaSeExistemCaixaAltaEBaixa;
import regras.VerificaSeExistemCaixaAltaOuBaixaEDigito;
import regras.VerificaSeExistemCaixaAltaOuBaixaOuDigitoESimbolo;
import regras.VerificaSeExistemSimbolos;
import regras.VerificaSeExistemTresOuMaisDigitos;
import regras.VerificaTamanho;

public class PasswordChecker01 {
  
    public void checkPassword(String senha){
        int forcaTotal = 0;
        ResultadoDaForca01 resultadoFinal = new ResultadoDaForca01();
        VerificaSeExisteCaixaAlta regra1 = new VerificaSeExisteCaixaAlta();
        VerificaSeExisteCaixaBaixa regra2 = new VerificaSeExisteCaixaBaixa();
        VerificaSeExisteDigito regra3 = new VerificaSeExisteDigito();
        VerificaSeExistemCaixaAltaEBaixa regra4 = new VerificaSeExistemCaixaAltaEBaixa();
        VerificaSeExistemCaixaAltaOuBaixaEDigito regra5 = new VerificaSeExistemCaixaAltaOuBaixaEDigito();
        VerificaSeExistemCaixaAltaOuBaixaOuDigitoESimbolo regra6 = new VerificaSeExistemCaixaAltaOuBaixaOuDigitoESimbolo();
        VerificaSeExistemSimbolos regra7 = new VerificaSeExistemSimbolos();
        VerificaSeExistemTresOuMaisDigitos regra8 = new VerificaSeExistemTresOuMaisDigitos();
        VerificaTamanho regra9 = new VerificaTamanho();
        
        forcaTotal = forcaTotal + regra1.regra(senha);
        forcaTotal = forcaTotal + regra2.regra(senha);
        forcaTotal = forcaTotal + regra3.regra(senha);
        forcaTotal = forcaTotal + regra4.regra(senha);
        forcaTotal = forcaTotal + regra5.regra(senha);
        forcaTotal = forcaTotal + regra6.regra(senha);
        forcaTotal = forcaTotal + regra7.regra(senha);
        forcaTotal = forcaTotal + regra8.regra(senha);
        forcaTotal = forcaTotal + regra9.regra(senha);

	System.out.println("Strength score is: " + forcaTotal);
        System.out.println("Strength verdict: " + resultadoFinal.verificaForca(forcaTotal));
    }  
}
